﻿

/******************************
**包含客户端验证函数 张建义 2007-4 7 21
*form表单名请指定为 formData
*******************************/
/**
*检查一个文本域的值是否为空

*@param string name 要检查的文本域的name属性

*@param string message 当文本域为空时显示的信息
*return boolean
*/
function CheckIfEmpty( name, message )
{
	var obj = document.Form1.item(name);
	
	if( !obj ){
		alert ("checkIfEmpty函数调用错误！！！！！！(属性为"+name+"的对象不存在）");
		return true;
	}
	
	if( obj.value == "" ){
		alert( message );
		obj.style.backgroundColor = "#cccccc";
		 
		if( obj.type == "text" || obj.type == "textarea" || obj.type == "file" ){
			if( obj.readOnly ) return false;
			obj.focus();
			obj.onblur = clearColor;
		}
		return false;
	}
	return true;
}

function clearColor(){
	var obj = event.srcElement;
	//alert( typeof(obj) ==  );
	if( typeof(obj) == "undefined" ) return; 
	obj.style.backgroundColor = "";
}

function displayErr( obj ){

}

//错误提示
function DisplayErrField( name ){
	if( name == "" ) return ;
	var obj = document.Form1.item(name);
	if( obj == null ) return;
	obj.style.backgroundColor = "#cccccc";
	if( obj.type == "text" || obj.type == "textarea" ){
		if( obj.readOnly ) return false;
		obj.focus();
		obj.onblur = clearColor;
	}
}


/**
*检查一组单选按扭或复选按扭是否有一个被选中
*@param string name 要检查的单选按扭或复选按扭的name属性

*@param string message 当无被选中选项时显示的信息
*return boolean
*/
/*
function checkIsChecked( name , message ){
		if( typeof(name) == "undefined" ){
			alert ("checkRadioIsChecked函数调用错误！！！！！！(请指定name参数）");
			return true;		
		}else if( typeof(message) == "undefined" ){			
			alert ("checkRadioIsChecked函数调用错误！！！！！！(请指定messgage参数）");
			return true;		
		}
			
		var obj = document.Form1.item( name );
		if( !obj ){
			alert ("checkRadioIsChecked函数调用错误！！！！！！(属性为"+name+"的对象不存在）");
			return true;
		}
			
		if( typeof(obj.length) == "undefined" ){
			alert ("checkRadioIsChecked函数调用错误！！！！！！(属性为"+name+"的对象不是radio或checkbox）");
			return true;
		}
			
		for( i = 0; i < obj.length; i ++ ){
			if( obj[i].checked == true ) return true;
		}
		alert( message );
		return false;
}*/

/**
*检查一个文本域的值是否为空且全是数字
*@param string name 要检查的文本域的name属性

*@param string emptyMessage 当文本域为空时显示的信息
*@param string notNumMessage 当文本域值不全是数字时显示的信息
*return boolean
*/
function CheckIfNumber( name, emptyMessage, notNumMessage )
{
	var canEmpty = false;
	var _notNumMessage = "";
	
	if( typeof(notNumMessage) == "undefined" ){
		canEmpty = true ;
		 _notNumMessage = emptyMessage ;
	}else{
		 _notNumMessage = notNumMessage ;
	}

	var obj = document.Form1.item(name);
	if( !obj ){
		alert ("checkIfNumber函数调用错误！！！！！！(属性为"+name+"的对象不存在）");
		return true;
	}
	
	if( canEmpty == false && obj.value == "" ){
		alert( emptyMessage );
		obj.focus();
		return false;
	}

	if( !IsNumber( obj.value ) ){
		alert( _notNumMessage );
		obj.focus();
		return false;
	}

	return true;

}

/**
*检查一个文本域的值是否为空且全是数字
*@param string name 要检查的文本域的name属性

*@param string emptyMessage 当文本域为空时显示的信息
*@param string notNumMessage 当文本域值不全是数字时显示的信息
*return boolean
*/
function CheckIfDecimal( name, emptyMessage, notNumMessage )
{

	var obj = document.Form1.item(name);
	if( !obj ){
		alert ("checkIfNumber函数调用错误！！！！！！(属性为"+name+"的对象不存在）");
		return true;
	}
	
	if( obj.value == "" ){
		alert( emptyMessage );
		obj.focus();
		return false;
	}

	if( !IsDecimal( obj.value ) ){
		alert( notNumMessage );
		obj.focus();
		return false;
	}

	return true;

}

/**
*刘力源

*检查一个文本域的值是否为空且全是数字
*@param string name 要检查的文本域的name属性

*@param string notNumMessage 当文本域值不全是数字时显示的信息
*return boolean
*/
function CheckDecimal( name, notNumMessage )
{

	var obj = document.Form1.item(name);
	if( !obj ){
		alert ("checkIfNumber函数调用错误！！！！！！(属性为"+name+"的对象不存在）");
		return true;
	}

	if( !IsDecimal( obj.value ) ){
		alert( notNumMessage );
		obj.focus();
		return false;
	}

	return true;
}
function CheckIsDecimal( name, notNumMessage )
{

	var obj = document.Form1.item(name);
	if( !obj ){
		alert ("checkIfNumber函数调用错误！！！！！！(属性为"+name+"的对象不存在）");
		return true;
	}

	if( obj.value =="") return true;
	
	if( !IsDecimal( obj.value ) ){
		alert( notNumMessage );
		obj.focus();
		return false;
	}

	return true;
}

/**
*检查一个字符串是否全是数字
*wangsm
*@param string v 要检查的字符串

*return boolean
*/
function IsNumber( v )
{
	var re =/^-?[\d]+$/ ;
	return re.test(v);
}

/**
*检查一个字符串是否是小数格式

*wangsm
*@param string v 要检查的字符串

*return boolean
*/
function IsDecimal( v )
{
	var re =/^-?[\d]+\.?[\d]*$/ ;
	return re.test(v);
}

/**
*将几个文本域的内容相加 赋值到特定的文本域
*@param string formBoxNameString 要相加的几个文本域的 name 列表，用 "," 间割
*@param string toBoxName 要赋值的文本域

*return boolean
*调用方法 onchange=addTo("a,b,c","d")
*/
function AddTo( fromBoxNameString, toBoxName )
{
	var adderNameArray = fromBoxNameString.split(",");
	var sum = 0;
	var temp = 0;

	var obj = null;

	for( i = 0; i < adderNameArray.length; i ++ ){
		obj = document.Form1.item(adderNameArray[i]);
		if( obj == null ) continue;

		temp = parseInt( obj.value );
		if( isNaN(temp) ) continue;

		sum += temp;
	}

	obj = document.Form1.item(toBoxName);
	if( obj == null ){
		alert ("addTo函数调用错误！！！！！！(属性为"+toBoxName+"的对象不存在）");
		return false;
	}

	obj.value = sum;

}
//**************************************************************************************************
/***
*通过嵌入在文本域中的自定义属性进行客户端必填字段验证
***
属性定义：allowNull="true"|"false"是否允许为空
		tipContent 当必填字段为空是显示的提示信息

***
*form name属性任意,函数只支持一个页面一个Form
*@author jianyi 2004 7 21
*@return boolean
*调用方式：  onsubmit="return checkByTag()"
*IE6 测试通过
*/
		
function CheckByTag(){
	
		var curObj = null;
		for( i = 0; i < document.forms(0).elements.length; i++ ){
			curObj = document.forms(0).elements(i);
			if( curObj.type == "text" ){
				if( curObj.allowNull == "undefined" ) break;
				
				if( curObj.allowNull == "false" ){
					if( curObj.value == "" ){
						if( curObj.tipContent != "undefined" &&  curObj.tipContent != null ) alert( curObj.tipContent );
						else alert( "name为" + curObj.name + "文本域为空！[程序错误！请指定此必填字段的tipContent属性！]");
						curObj.focus();
						return false;
					}
				}
			}			
		}	
		return true;	
}
//**********************************************************************************************

/*检测页面中的复选或单选框 是否至少有一个被选中
*@author jianyi 2004 7 18
*@param message 没有选择时的提示信息
*return bool
**/
function OneIsChecked( message )
{
	var selectedCount = 0;
	for( i = 0; i < document.forms[0].elements.length; i++ )
	{
		 var e = document.forms[0].elements[i];
     	 if ( e.type =="checkbox" && e.checked == true )
			return true;
		 else if ( e.type =="radio" && e.checked == true )
			return true;
	}
	alert( message );
	return false;
}


/**/
function OneIsFill(){
	for( i = 0; i < document.forms[0].elements.length; i++ )
	{
		 var e = document.forms[0].elements[i];
     	 if ( e.type =="text" && e.value!= "" )
			return true;
	}
	alert( "请至少填写一项" );
	return false;
}

//将所有域的小于1的小数值添加上 0 
function FormatAllDecmail(){

	for( i = 0; i < document.formData.elements.length; i++ )
	{
		 var e = document.formData.elements[i];
     	 if ( e.type =="text" && e.value != "" ){
		 	temp = e.value;
			
			if( temp.indexOf(".") == 0 ){
				e.value = "0" + temp; 
			}
		}
	}
}


//////////////
/*
*只允许输入数字值(整数）

*调用方法:  OnKeyPress="javascript:return OnlyInt();" 
**/
function OnlyInt(){
	if (event.keyCode == 13)
        return true
   if (event.keyCode < 48 || event.keyCode > 57){
		alert( "只能输入数字！" );
        return false;
        
    }else
        return true;
}
/*
*只允许输入数字值(整数或小数)
*调用方法:  OnKeyPress="javascript:return onlyNumber();" 
**/
function OnlyDecimal(){
		//alert(event.keyCode);
	//alert(event.srcElement.value);
	var oldValue = event.srcElement.value;
	
	if (event.keyCode == 13 ||event.keyCode == 110 || event.keyCode == 190)
        return true
	//确保只输入一个 .	
	if ( event.keyCode == 46 ){
	
		if(oldValue.length == 0 ){
			alert( "只能输入小数！" );
			oldValue="";
			return false ;
		 }
		
    	if( oldValue.indexOf(".") > -1 ){
    		alert( "只能输入小数！" );
    		oldValue="";
	    	return false
		}else
	    	return true
	}
	
    if (event.keyCode < 48 || event.keyCode > 57){
		alert( "只能输入小数！" );
		oldValue="";
        return false;
    }else
        return true;
}

// --------------------------------------------------------------------
// - 版权所有： Beyondbit
// - 作者：刘力源   Email: postmanlly@gmail.com
// - 创建：2005-11-23
// - 更改：

// - 备注：判断输入的是否为电子邮件，如含非法字符则提示

// - 参数：text-------输入的电子邮件

// - 使用例子onBlur="isEmail(this)" 
// --------------------------------------------------------------------
function isEmail(text)
{   
 var email=text.value.Trim();
 var m=email.indexOf("@");
 var n=email.indexOf(".");
 if(email!="")
 {
  if(m<1||m>email.length-3)
  {
   alert("请输入正确的电子邮件格式!");
   text.focus();
   return true;
  }
  else if(n<m+2||n>email.length-2)
  {
   alert("请输入正确的电子邮件格式!");
   text.focus();
   return true;
  }
 }
}

